package com.jweb.core.inter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.jweb.core.handle.ActionException;

/**
 * 请求拦截<br>
 * 类似Spring中的HandlerInterceptorAdapter<br>
 * 该类为单例，使用全局变量会发生线程安全问题。请使用ThreadLoal定义变量
 */
public abstract class HandleInterceptor {
	/** 请求执行之前：可以进行编码、安全控制等处理 */
	public abstract boolean preHandle(HttpServletRequest request, HttpServletResponse response) throws ActionException, Exception;

	/** 请求执行之后：可以设置默认Attr,可以根据ex是否为null判断是否发生了异常，进行日志记录, */
	public abstract void afterCompletion(HttpServletRequest request, HttpServletResponse response, Exception ex) throws ActionException, Exception;
}
